package vue.eleve;

import java.util.Arrays;
import java.util.Vector;

import javax.swing.JPanel;
import javax.swing.border.TitledBorder;

import vue.commun.JPanJTable;
import vue.commun.JPanOptionTri;
import configuration.Constante;

/**
 * @author olivier.rombaut
 * Permet d'afficher la liste des eleves par stage.
 * Et de proposer un systeme de tri.-
 */
public class JPanAffStageEleve extends JPanel{

	private static final long serialVersionUID = -8258905260255616984L;
	private JPanOptionTri jPanOptionTri;
	private JPanJTable panJTable;
	
	/**
	 * Constructeur par defaut
	 */
	public JPanAffStageEleve() {
		init();
	}
	
	/**
	 * Constructeur de copie
	 * @param jPanOptionTri
	 * @param panJTable
	 */
	public JPanAffStageEleve(JPanOptionTri jPanOptionTri, JPanJTable panJTable) {
		this.jPanOptionTri = jPanOptionTri;
		if ( panJTable != null ){
			this.panJTable = panJTable; 
		}
		init();
	}
	
	/**
	 * Initialisation du panel.
	 */
	private void init(){
		this.setBorder(new TitledBorder("Afficher eleves par stages"));
		if ( jPanOptionTri == null){
			jPanOptionTri = new JPanOptionTri(false, this);
		}
		this.add(jPanOptionTri);
		
		// ----------- AFFICHAGE TABLEAU
		JPanel tableau = new JPanel();
		if (panJTable == null ){
			//Nom des colonnes
			Vector<Object> nomColonne= new Vector<Object>(Arrays.asList(new String[] {"grade", "nom", "prenom", "date de naissance", "moyenne", "fonction"}));
			
			//valeurs des lignes
			Vector<Vector<Object>> dataVector= new Vector<Vector<Object>>();
			
			// Creation et ajout du Jtable.
			panJTable = new JPanJTable(null, dataVector, nomColonne, null);
			panJTable.getJtable().setAutoCreateRowSorter(true);
			panJTable.setAutoscrolls(true);
		}
		tableau.add(panJTable);
		this.add(tableau);
	}

	/**
	 * @return the panJTable
	 */
	public JPanJTable getPanJTable() {
		return panJTable;
	}
}
